<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //创建一个学生方式
        //1.字面量方式
        // var stu = {
        //     name: '张三',
        //     age: '23',
        //     study: function () {
        //         console.log(this.name + '正在学习')
        //     }
        // }
        // stu.study();


        //2.new object()
        // var stu = new Object();
        // stu.name = '张三';
        // stu.age = '23';
        // stu.study = function () {
        //     console.log('ok')
        // }
        // stu.study();


        //3.构造函数
        function student(name, age, score) {
            //this.属性名=形参名
            this.name = name;
            this.age = age;
            this.score = score;

            //在构造函数中定义的属性和方法都是实例成员，每个对象都有自己的实例成员
            // this.count=0;
            // this.count++;

            student.count++;

            //定义方法
            this.study = function () {
                console.log('ok');
            }
        }
        //直接定义在构造函数上的属性和方法是静态成员，（静态属性和方法）
        //静态 属于类的访问方式：构造函数名.属性名
        //每个对象都可以构造函数名.属性名获取、设置属性值
        //静态成员是所有对象共享，实例成员每个对象独享
        student.count = 0;

        var zs = new student('张三', '23', '90');
        var ls = new student('李四', '23', '90');
        zs.study();
        ls.study();
    </script>
</body>

</html>